package main

import (
	"fmt"
	"sync"
)

//用于安全map的遍历
func Print(key, value interface{}) bool {
	fmt.Println("key:", key, "value:", value)
	return true
}

func main() {

	//安全的map
	var smap sync.Map
	//将键值对存储在sync.map
	smap.Store("1", 1)
	smap.Store("2", 2)
	smap.Store("3", 3)

	//获取
	//v, ok := smap.Load("2")

	//从map中删除操作()
	smap.Delete("3")

	//范围遍历（函数回调，将函数作为函数参数）
	smap.Range(Print)

	/*
		map 和 sync.map的区别：
		1.map必须初始化才能使用(如下代码运行会报错，未被初始化)
		var m map[interface{}]interface{}
		m["11"] = 11
		fmt.Println(m["11"])
	*/

}
